home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #6 / Amiga Plus CD - 2004 - No. 06.iso / AmigaPlus / Begleitmaterial / 50Tools / Grafik / PerfectPaint / rexx / bridge / CropPaste.rx < prev    next >
Text File  |  2003-06-26  |  2KB  |  142 lines

  1. /*     arexx Script 
  2.     CopyPaste
  3. */
  4.  
  5.     options results
  6.     parse ARG Port CropX CropY CropW CropH b
  7.     
  8.     ADDRESS value Port
  9.  
  10.     pp_GetDepth
  11.     D=result
  12.  
  13.     X2=CropW/2
  14.     Y2=CropH/2    
  15.  
  16.     IF D<9 then DO
  17.         pp_Psave "T:Cppal" 0
  18.     END
  19.  
  20.     pp_GetCurrentBuffer
  21.     CBf=result
  22.     pp_GetCurrentBrush
  23.     CB=result
  24.  
  25.     pp_FindEmptyBrush
  26.     Brush=result
  27.     if Brush=-1 then DO
  28.         pp_Warn "can't*find*empty|Brush."
  29.         EXIT        
  30.     END
  31.  
  32.     pp_FindEmptyBuffer
  33.     Bf=result
  34.     if Bf=-1 then DO
  35.         pp_Warn "can't*find*empty|Buffer."
  36.         EXIT        
  37.     END
  38.  
  39.     pp_SetBrush Brush
  40.     pp_PickBrush CropX CropY CropW CropH 1        
  41.     pp_SetBuffer Bf
  42.  
  43.     pp_New cropW cropH D
  44.     pp_EffectOff
  45.  
  46.     IF D<9 then DO
  47.         pp_Pload "T:Cppal" 0
  48.         ADDRESS COMMAND
  49.       'delete >nil: T:Cppal'
  50.         ADDRESS value Port        
  51.     END
  52.  
  53.     pp_GetBrushMode
  54.     BM=result
  55.  
  56.     pp_AvoidRefresh
  57.     pp_ClosestColor 255 255 255
  58.     White=result
  59.     pp_ClosestColor 0 0 0
  60.     Black=result
  61.  
  62.     pp_SetBpen White
  63.     pp_SetApen Black
  64.     pp_SpareOnOff    
  65.     pp_Cls
  66.     pp_setBrushMode 2
  67.     pp_plot X2 Y2
  68.     pp_SparetoStencil
  69.     pp_SetBpen Black    
  70.     pp_Cls
  71.     pp_SpareOnOff
  72.     pp_setBrushMode 3
  73.     pp_plot X2 Y2
  74.     pp_setBrushMode BM
  75.  
  76.     pp_FreeBrush
  77.     pp_SetBrush CB
  78.     pp_PermitRefresh
  79.  
  80.     EXIT    
  81.         
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.     pp_GetWidth
  99.     W=result
  100.     pp_GetHeight
  101.     H=result
  102.  
  103.     pp_GetWidthB
  104.     Wb=result
  105.     IsBrush=0
  106.     IF Wb>0 then DO
  107.         IsBrush=1
  108.         pp_Bsave "perfectpaint:Temp/brush" 0 3
  109.     END
  110.  
  111.     X2=CropW/2
  112.     Y2=CropH/2
  113.  
  114.     pp_PickBrush CropX CropY CropW CropH 1        
  115.  
  116.  
  117.     pp_CountFrames
  118.     nb=result
  119.     if nb>1 then do
  120.         Do i=1 to nb
  121.             pp_GotoFrame i
  122.             pp_PickBrush CropX CropY CropW CropH 1
  123.             pp_Bsave 'PerfectPaint:Temp/Anim'||i 0 1
  124.         END
  125.  
  126.         pp_New CropW CropH
  127.         pp_MakeAnim nb 0
  128.         do i=1 to nb
  129.             pp_Bload 'PerfectPaint:Temp/Anim'||i
  130.             pp_Plot X2 Y2        
  131.             pp_NextFrame
  132.         END
  133.         pp_FreeBrush
  134.         IF IsBrush=1 then DO
  135.             pp_Bload "perfectpaint:Temp/brush"
  136.         END
  137.         
  138.         ADDRESS COMMAND    'delete >nil: PerfectPaint:Temp/?#.*'
  139.         EXIT
  140.     END
  141.  
  142.